'use client';

import { useState, useEffect } from 'react';
import { getCookie } from 'cookies-next';
import { VIP_STATUS } from '@/lib/config/constants';

/**
 * 获取当前用户VIP状态的hook
 * @returns VIP状态相关数据和方法
 */
export function useVip() {
  const [vipStatus, setVipStatus] = useState<number>(VIP_STATUS.NORMAL); 
  const [isLoaded, setIsLoaded] = useState<boolean>(false);
  
  useEffect(() => {
    // 从cookie中获取VIP状态
    const vipCookie = getCookie('vip');
    const status = vipCookie ? parseInt(vipCookie.toString()) : VIP_STATUS.NORMAL;
    setVipStatus(status);
    setIsLoaded(true);
  }, []);
  
  /**
   * 判断是否为VIP用户
   */
  const isVipUser = vipStatus === VIP_STATUS.VIP;
  
  /**
   * 判断是否有权限访问内容
   * @param isVipContent 是否是VIP内容
   * @param isVisibleContent 是否是可见内容
   * @returns 是否有权限访问
   */
  const hasAccess = (isVipContent: boolean, isVisibleContent: boolean = true): boolean => {
    // 如果内容不可见，任何用户都无权访问
    if (!isVisibleContent) {
      return false;
    }
    
    // 如果是VIP专属内容，只有VIP用户可以访问
    if (isVipContent) {
      return isVipUser;
    }
    
    // 普通内容，所有用户都可以访问
    return true;
  };
  
  return {
    vipStatus,
    isVipUser,
    hasAccess,
    isLoaded,
  };
} 